using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("AccountLicenseMgr")]
	public class AccountLicenseMgr : MonoClass
	{
		public enum LicenseUpdateState
		{
			UNKNOWN,
			SUCCESS,
			FAIL
		}

		public LicenseUpdateState m_consumableLicensesUpdateState => method_2<LicenseUpdateState>("m_consumableLicensesUpdateState");

		public LicenseUpdateState m_fixedLicensesUpdateState => method_2<LicenseUpdateState>("m_fixedLicensesUpdateState");

		public AccountLicenseMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public AccountLicenseMgr(IntPtr address)
			: this(address, "AccountLicenseMgr")
		{
		}

		public static AccountLicenseMgr Get()
		{
			return MonoClass.smethod_15<AccountLicenseMgr>(TritonHs.MainAssemblyPath, "", "AccountLicenseMgr", "Get", Array.Empty<object>());
		}

		public static void Init()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "AccountLicenseMgr", "Init");
		}

		public void InitRequests()
		{
			method_8("InitRequests");
		}

		public bool OwnsAccountLicense(long license)
		{
			return method_10<bool>("OwnsAccountLicense", new Class276.Enum20[1] { Class276.Enum20.I8 }, new object[1] { license });
		}

		public void WillReset()
		{
			method_8("WillReset");
		}

		public void OnAccountLicensesUpdatedResponse()
		{
			method_8("OnAccountLicensesUpdatedResponse");
		}
	}
}
